Suggesting object identifiers and recipients for communication

ABSTRACT

Described are systems and methods that suggest candidate recipients to receive an object identifier from a first user. For example, a first user, independent of a conversation with a second user, may select, close-up, or otherwise view an object identifier. The system, upon detecting the interaction with the object identifier by the first user, may determine one or more second users to suggest to the first user as candidate recipients with which the first user can share the viewed object identifier. The systems and methods may also suggest object identifiers to share with a selected recipient and/or determine two or more users that have a common connection and share an object identifier related to the connection with each of those users.

PRIORITY CLAIM

This application is a continuation-in-part of U.S. patent applicationSer. No. 14/837,771, filed Aug. 27, 2015, and titled “Suggesting ObjectIdentifiers To Include In A Communication,” which is incorporated byreferenced herein in its entirety.

BACKGROUND

People are increasingly interacting with computers and other electronicdevices in new and interesting ways. With the increased processingcapabilities, connectivity and location tracking, electronic deviceshave become widespread and used in many everyday activities. Forexample, people often use electronic devices to search for products,watch videos, listen to music, research, shop for both digital andphysical products (“e-commerce”), and receive news, just to name a few.Other uses include communicating with other users, communicating viasocial communities, photography, and many others.

Objects are typically made available and people search for objects,based on information about the object for which they are searching.Keywords that describe an object are often associated with the objectand, when people search using one or more of those keywords, the objectmay be returned as a result.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is set forth with reference to the accompanyingfigures. In the figures, the left-most digit(s) of a reference numberidentifies the figure in which the reference number first appears. Theuse of the same reference numbers in different figures indicates similaror identical items.

FIG. 1 is an illustration of a communication between a first user and asecond user and a first user being presented with suggested objectidentifiers, according to an implementation.

FIG. 2 is a block diagram of a corpus of object identifiers, accordingto an implementation.

FIG. 3 illustrates an example suggest object identifier(s) process,according to an implementation.

FIG. 4 illustrates an example process for determining suggested objectidentifier(s) based on communication context, according to animplementation.

FIG. 5 illustrates an example process for determining suggested objectidentifier(s) based on commonality, according to an implementation.

FIG. 6 illustrates an example process for determining a communicationinitiation object identifier, according to an implementation.

FIG. 7 illustrates an example process for determining candidaterecipients for an object identifier, according to an implementation.

FIG. 8 illustrates an example illustration of a suggestion of candidaterecipients for an object identifier, according to an implementation.

FIG. 9 illustrates an example process for determining multiplerecipients for an object identifier, according to an implementation.

FIG. 10 is a block diagram of an example structure of a set and anobject identifier, according to an implementation.

FIG. 11 illustrates an example computing device that can be used inaccordance with various implementations.

FIG. 12 illustrates an example configuration of components of acomputing device, such as that illustrated in FIG. 11.

FIG. 13 is a pictorial diagram of an illustrative implementation of aserver system that may be used for various implementations.

While implementations are described herein by way of example, thoseskilled in the art will recognize that the implementations are notlimited to the examples or drawings described. It should be understoodthat the drawings and detailed description thereto are not intended tolimit implementations to the particular form disclosed but, on thecontrary, the intention is to cover all modifications, equivalents andalternatives falling within the spirit and scope as defined by theappended claims. The headings used herein are for organizationalpurposes only and are not meant to be used to limit the scope of thedescription or the claims. As used throughout this application, the word“may” is used in a permissive sense (i.e., meaning having the potentialto), rather than the mandatory sense (i.e., meaning must). Similarly,the words “include,” “including,” and “includes” mean including, but notlimited to.

DETAILED DESCRIPTION

This disclosure describes systems and methods for determining objectidentifiers to suggest to a first user for use in including in acommunication with a second user. For example, a first user (sendinguser) may be communicating in an Internet based social community with asecond user (receiving user) via a chat messaging interface. As part ofthat communication, the first user may desire to send, present orotherwise share an object identifier, such as an image of an object,with the second user. In traditional systems, the user can search for(e.g., using a keyword search) an image, select the image, and thenshare the image with the second user.

The systems and methods discussed herein determine object identifiersthat are potentially relevant to the communication and/or the users andsuggest one or more of those object identifiers to the first user forselection and sharing with the second user. For example, the objectmanagement service may process the communication exchange between thefirst user and the second user to determine a communication context.That communication context may then be used to determine objectidentifiers associated with the first user that are potentially relevantto the communication between the first user and the second user. Thedetermined object identifiers may then be presented to the first userfor selection by the first user to share with the second user. In otherimplementations, the object management service may determine a first setof object identifiers associated with the first user and a second set ofobject identifiers associated with the second user in which one or moreof the object identifiers of the two sets overlap (e.g., are the same orsimilar object identifiers). Other object identifiers of the firstuser's first set may then be suggested to the first user for sharingwith the second user.

By determining object identifiers to suggest for sharing with otherusers during a communication, the user need not search for objectidentifiers that are potentially relevant to the communication and/orthe user with which they are communicating. Likewise, because the objectmanagement service has knowledge of the object identifiers associatedwith the users involved in the communication exchange, it can oftenbetter assess which object identifiers are more likely to be of interestto a receiving user. For example, suggested object identifiers may bedetermined such that they only include object identifiers that are notalready associated with the receiving user.

In still other implementations, the system may suggest candidaterecipients (second users) for receiving an object identifier from thefirst user. For example, a first user, independent of a conversationwith a second user, may select, close-up, or otherwise view an objectidentifier. The system, upon detecting the view of the object identifierby the first user, may determine one or more second users to suggest tothe first user as candidate recipients with which the first user canshare the viewed object identifier. In some implementations, thecandidate recipients may be known or have an association with the firstuser, may be users for which increased activity is desired, and/or maybe users that are determined to have a potential interest in the viewedobject identifier.

For purposes of discussion, an “object identifier,” as used herein, is acollection of one or more items of information that identifies anobject. The object identifier may include any combination of: arepresentation for the object, such as a graphical representation,audible representation, or other representation of the object; a contextfor the object as understood by the user; a description of the objectprovided by the user; static information about the object; supplementalinformation about the object; the set to which the object belongs(discussed below); the source of the object; any parent objectidentifier from which the object identifier was created; a context ofthe object; and any identification of other similar object identifiers.As will be appreciated, additional or fewer items of information may beincluded in an object identifier.

As discussed in further detail herein, a context represents informationabout an object as understood by the user. The context explains why theobject is important to the user that created the object identifier. Insome implementations, context(s) may be provided directly by the user ordetermined based on other information provided by or about the user.Static information about an object may be any information about theobject that does not change. Such information may be provided by theuser, by other users, and/or by external sources.

The methods and systems described herein further enable users to manage,search for, share and discover objects by organizing object identifiersinto “sets.” For example, users may create one or more sets and objectidentifiers may be associated with those sets. Generally, a “set” is acollection of object identifiers created by a user. In oneimplementation, each set may include any number of object identifiers,including zero (a null set). An object identifier may be associated withone or many sets and one or many users. In one implementation, an objectidentifier may only be associated with one set. Like object identifiers,sets may have a context. A set may also include a category, such astravel, sports, animals, art, education, food and drink, etc.

Users can create object identifiers and add them to sets based onrepresentations for objects provided or identified by the user or byadding existing object identifiers to their own set of objectidentifiers. An “object” may be anything that can be represented. Forexample, a user may create an object identifier for a television show,an image, a physical object, a sound, a web page, a location, a digitalobject, and the like. Object identifiers created with representationsprovided or identified by a user are considered parent object identifierrelationships. Object identifiers created based on existing objectidentifiers are considered child object identifiers. An objectidentifier may have any number of parent and/or child objectidentifiers. As discussed further below, relationships (e.g.,parent/child) between object identifiers may be maintained to allowusers to discover other objects and to understand the source of theobject represented by an object identifier.

FIG. 1 is an illustration of a communication between a first user and asecond user, and a first user being presented with suggested objectidentifiers, according to an implementation. In this example, the firstuser (not shown) is communicating with a second user (not shown) in areal-time chat session that is part of a social community. The firstuser is utilizing a client device 100 to send and receive messages. Asdiscussed below with respect to FIG. 11, the client device may be anytype of device capable of sending and receiving communications,receiving user input and providing output to a user of the client device100.

In this example, the display of the client device presents severaltextual communication exchanges between the first user and the seconduser. In this example, the first user has asked “What kind of dog?”101(A) and the second user has responded with “Not sure, something goodwith kids” 102(A). In this example, the first user inputs textualinformation in the input field 105 by selecting keys on the keyboard 104that is presented on the touch-based display of the client device 100.When the input is complete, the client device 100 presents the inputinformation on the display of the client device 100 and transmits thetextual information as a communication to a client device of the seconduser. Likewise, when a communication from the second user is received bythe client device 100, the textual information is presented as part ofthe communication on the display of the client device 100.

In this example, the first user has input two communications 101(A),101(B) and received two communications 102(A), 102(B), which arepresented on opposing sides of the display of the client device todifferentiate between communications sent from the client device 100(presented on the left side of the display of the client device) andcommunications received by the client device 100 (presented on the rightside of the display of the client device).

While this example illustrates a textual based communication exchange,any form of communication (e.g., textual, audio, video images) may besent and/or received as part of the communication. For example, if thefirst user (sending user) desires to include an object identifier in thecommunication such that the object identifier is shared with the seconduser, the first user may select the object identifier control 106. Uponselecting the object identifier control, the first user is presented,via the display of the client device 100, with an object identifierselection interface 108. The object identifier selection interfacepresents to the user suggested object identifiers 112, 114, 116, 118,120, the option to search for other object identifiers, as illustratedby the “Search Object Identifiers” control 122, and the option to createan object identifier, as illustrated by the “Create Object Identifiers”control 124.

Rather than just presenting object identifiers for selection orrequiring the user to search for object identifiers (e.g., using keywordinputs), the suggested object identifiers that are presented to the uservia the object identifier selection interface 108 are determined by theobject management service to be relevant to the current communicationexchange and/or relevant with respect to the first user and the seconduser, as discussed further below.

While the examples discussed herein describe a communication exchangebetween a first user and a second user, the communication exchange maybe among any number of users. For example, the communication exchangemay be between a first user (user sending the object identifier) and anynumber of users that are receiving the object identifier selected by thefirst user for inclusion in the communication exchange.

In this example, because the communication exchange between the firstuser and the second user was determined by the object management serviceto be related to dogs, the object management service determined andpresented to the first user for selection suggested object identifiersrelated to dogs. The determined context of a communication is referredto herein as a communication context. In this example, the two objectidentifiers 112, 114 are associated with the first user and included inSet A 110, a set created by and associated with the first user. Set Aalso includes other object identifiers that overlap (e.g., are the sameor similar) to object identifiers associated with object identifiers ofa set created by the second user. The object identifiers 116, 118 aredetermined to be relevant to the context of the communication, but arenot associated with either the first user or the second user. Finally,object identifier 120 is determined to be relevant to the context of thecommunication and included in Set B, a set created by and associatedwith the first user but does not include object identifiers that overlapwith object identifiers included in a set associated with the seconduser.

Suggested object identifiers may be determined by the object managementservice based on a relevance and/or association with the first user, apotential relevance to the second user, a relevance to the communicationcontext, or any combination thereof. Likewise, in some examples,suggested object identifiers may be only those object identifiers thatare not associated with the second user and/or that have not beenpreviously viewed and/or shared with the second user.

FIG. 2 is a block diagram of a corpus 200 of object identifiers anddetermining suggested object identifiers for presentation to a firstuser for sharing with a second user, according to an implementation. Theobject management service maintains a corpus of object identifiers thatmay be selected, viewed, created, shared, etc., by users of the objectmanagement service. For example, as discussed below with respect to FIG.10, a user may create an object identifier that includes an image of anobject and the object management service will associate that objectidentifier with the user. Likewise, the user may associate or includethe object identifier in one or more sets created by the user, share theobject identifier with other users, etc. In some implementations, theobject management service may maintain millions of object identifiers,each of which may be associated with one or many users, one or manysets, etc.

Continuing with the example discussed above with respect to FIG. 1, theobject management service may determine a communication context 203associated with a communication between two or more users (e.g., user 1and user 2). Alternatively, or in addition thereto, the objectmanagement service may determine sets of the users that include one ormore overlapping object identifiers. In this example, Set A 210 isassociated with a first user and Set C 221 is associated with the seconduser. The two sets overlap because both sets include an association withobject identifiers OI-1 201 and OI-6 206.

In either case, the object management service may determine a candidatesuggestion set that includes object identifiers determined to be ofpotential interest to the receiving user. For example, if the objectidentifiers are determined based on the determined communication context203, the candidate suggestion set will, in this example, include objectidentifiers OI-16 216, OI-8 208, OI-12 212, OI-1 201, OI-6 206, OI-14214, OI-20 220, and OI-18 218 because each of those object identifiersare associated with a same context as the determined communicationcontext. For example, if the determined communication context is dogs,each of the object identifiers of the corpus 200 that include thecontext dogs will initially be included in the candidate suggestion set.

If the object management service is determining a candidate suggestionset based on sets with overlapping object identifiers between the users,it will include object identifiers of the set associated with thesending user. For example, if the first user is requesting objectidentifiers to include in a communication to a second user, the firstuser created Set A 210, and the second user created Set C 221 may bedetermined to include overlapping object identifiers and the candidatesuggestion set will include object identifiers of Set A 210. In thisexample, the object identifiers included in the candidate suggestion setwill be OI-12 212, OI-1 201, OI-6 206, OI-14 214, OI-17 217, OI-15 215,and OI-19 219.

If the object management service is determining a candidate suggestionset based on the communication context and sets with overlapping objectidentifiers between the users, it will include object identifiersincluding a context matching the communication context or objectidentifiers within the set associated with the sending user. In someimplementations, the object management service may include objectidentifiers that include the same communication context or that arewithin a sending user set that overlaps with a receiving user set. Insuch an implementation, referring again to the example illustrated inFIG. 2, the candidate suggestion set will include OI-16 216, OI-8 208,OI-12 212, OI-1 201, OI-6 206, OI-14 214, OI-18 218, OI-20 220, OI-17217, OI-15 215, and OI-19 219.

Alternatively, the object management service may only include objectidentifiers in the candidate suggestion set that include a same contextas the determined communication context and that are within a sendinguser set that overlaps with a receiving user set. In such animplementation, the candidate suggestion set will include objectidentifiers OI-12 212, OI-1 201, OI-6 206, and OI-14 214.

In some implementations, before object identifiers of the candidatesuggestion set are presented as suggested object identifiers, thoseobject identifiers that are associated with the receiving user, in thisexample the second user that created Set C 221, are removed from thecandidate suggestion set. For example, if the candidate suggestion setis based on the determined communication context, the object identifiersOI-8 208, OI-1 201, and OI-6 206 that are associated with the seconduser are removed from the candidate suggestion set because they arealready associated with the receiving user.

In implementations in which the candidate suggestion set is based onobject identifiers included in a set associated with a sending user thatincludes one or more object identifiers of a set associated with thereceiving user, the overlapping object identifiers may be removed fromthe candidate suggestion set. For example, if the candidate suggestionset is based on overlapping sets of Set A and Set C, object identifiersOI-1 201 and OI-6 206 may be removed from the candidate suggestion setbecause they are already associated with the second user.

Likewise, in some implementations, the object identifiers of thecandidate suggestion set may be weighted to determine which of theobject identifiers of the candidate suggestion set to present to thesending user. For example, object identifiers determined to have a highrelevance to the communication context, having a higher relevance to thesending user, a potential relevance to the receiving user, a time sincethe object identifier was shared by the sending user, having a higherrating by the sending user and/or other users, included in multiple setsof the sending user, more recently associated with the sending user,having a high co-occurrence or similarity to other object identifiersassociated with the sending user and/or the receiving user(s), etc., maybe assigned a higher weight than others of the candidate suggestion set.

After removing object identifiers and/or weighting object identifiers,one or more of the object identifiers included in the candidatesuggestion set are provided to the sending user for selection such thatthe sending user can include an object identifier in a communicationwith a receiving user.

FIG. 3 illustrates an example suggested object identifier(s) process300, according to an implementation. The example process 300 and each ofthe other processes described herein are illustrated as a collection ofblocks in a logical flow graph. Some of the blocks represent operationsthat can be implemented in hardware, software, or a combination thereof.In the context of software, the blocks represent computer-executableinstructions stored on one or more computer-readable media that, whenexecuted by one or more processors, perform the recited operations.Generally, computer-executable instructions include routines, programs,objects, components, data structures, and the like that performparticular functions or implement particular abstract data types.

The computer-readable media may include non-transitory computer-readablestorage media, which may include hard drives, floppy diskettes, opticaldisks, CD-ROMs, DVDs, read-only memories (ROMs), random access memories(RAMs), EPROMs, EEPROMs, flash memory, magnetic or optical cards,solid-state memory devices, or other types of storage media suitable forstoring electronic instructions. The order in which the operations aredescribed is not intended to be construed as a limitation, and anynumber of the described operations can be combined in any order and/orin parallel to implement the process. Likewise, additional or feweroperations than those described may be utilized with the variousimplementations described herein.

The example process 300 begins upon receipt of a request by a user foran object identifier to include in a communication with one or moreother users, as in 302. As discussed above with respect to FIG. 1, aspart of a communication between users, one of the users may select adisplayed control button, or otherwise input a request for objectidentifiers to include in the communication that is shared with otherusers. Alternatively, the request for an object identifier may be at aninitiation of a communication from a first user to a second user, asdiscussed below with respect to FIG. 6. In still another implementation,the request may be from the object management service rather than auser. For example, the object management service may determine that acommunication should be initiated between a first user and a seconduser. To cause or encourage the communication, the object managementservice may determine one or more suggested object identifiers that arethen presented to the first user with information relating to the seconduser about the object identifier and/or the context of the objectidentifier.

For example, if the object management service determines to establish acommunication between a first user and a second user, the objectmanagement service may determine a context or current interest of thesecond user that is also of interest to the first user. The objectmanagement service may then determine one or more object identifierscorresponding to the context to present to the first user and anindication that the second user is interested in the context associatedwith the object identifier. As an illustration, and continuing with thedog example, the object management service may determine that the seconduser is interested in dogs and that the first user is interested indogs. Likewise, the object management service may determine a setassociated with the first user that includes one or more objectidentifiers having a context of dogs that overlap with a set created bythe second user that includes object identifiers having a context ofdogs. The object management service may then determine an objectidentifier included in the set associated with the first user that isnot included in a set associated with the second user and suggest to thefirst user that the first user initiate a communication to the seconduser relating to dogs and that the first user share the determinedobject identifier with the second user as part of that communication.

Returning to FIG. 3, upon receiving the request for an objectidentifier, the example process 300 determines one or more suggestedobject identifiers, as in 304. As discussed above, and as furtherdiscussed below, suggested object identifiers may be determined based ona context of a communication, sets associated with users, other objectidentifiers shared by users as part of a communication, etc. The exampleprocess 300 then presents at least some of the suggested objectidentifiers to the user such that the user can select a suggested objectidentifier to include in a communication to another user, as in 306.

FIG. 4 illustrates an example process 400 for determining suggestedobject identifier(s) based on a determined communication context of anexisting communication between two or more users, according to animplementation. The example process 400 provides additional details forone implementation for determining suggested object identifiers.

The example process 400 begins by determining a communication contextfrom the current communication between the two or more users, as in 402.The communication context may be determined using any one or more of avariety of techniques. In one implementation, the communications betweenthe users are processed to identify one or more keywords and thekeywords are normalized to a context maintained by the object managementservice. For example, communications from the first user may be comparedwith communications from the second user to determine terms (e.g., dog)that are used in both communications. Based on the frequency of terms,the context may be determined from the keywords having the highestfrequency. Other techniques, such as natural language processing, termoccurrence, etc., may likewise be used to determine a context of acommunication.

In implementations when the communication is not textual based, othertechniques may be utilized. For example, if the communication is imagebased, the object management service may process images and/orcorresponding information included in the communication to determine anobject or objects represented in the image(s). For example, the imagesmay be processed using object recognition algorithms to determine anobject represented in the image. Alternatively, or in addition thereto,image information may be processed to obtain information about the imagethat may be utilized to determine an object represented in the image.Based on the determined object(s), a context for the communication maybe determined. In still another example, rather than processing thecommunication, the object management service may determine an objectidentifier that has already been shared by one of the users involved inthe communication and determine a context associated with that objectidentifier.

Based on the determined context, a candidate suggestion set of objectidentifier(s) relevant to the communication context is determined, as in404. As discussed above, the candidate suggestion set may include anyobject identifiers having a same or similar context to the determinedcommunication context. In other implementations, the object identifiersincluded in the candidate suggestion set may be those associated withthe sending user and having a same or similar context as the determinedcommunication context.

Once the candidate suggestion set is determined, object identifiersincluded in the candidate suggestion set that are already associatedwith the receiving user are removed, as in 408. As discussed above, theobject management service maintains a list of object identifiersassociated with each user. By comparing the object identifiers includedin the candidate suggestion set with the object identifiers associatedwith the receiving user, common object identifiers are determined andremoved from the candidate suggestion set. In some implementations, itmay also be determined which object identifiers of the candidatesuggestion set have previously been viewed and/or sent to the receivinguser, and those object identifiers may also be removed from thecandidate suggestion set. In still other implementations, rather thanremoving the object identifiers from the candidate suggestion set thathave already been viewed and/or sent to the receiving user, a weightingof those object identifiers may be decreased, as discussed below.

For the remaining object identifiers included in the candidatesuggestion set, a weighting may be applied to those object identifiers,as in 410. The weighting may be used to determine which of the candidateobject identifiers to present to the user for selection and inclusion inthe communication. For example, object identifiers with a higher weightmay be selected and provided to the sending user as suggested objectidentifiers. Weighting of an object identifier may be increased and/ordecreased. For example, as discussed above, if it is determined that thereceiving user has previously viewed and/or received the objectidentifier, a weighting of that object identifier may be decreased. Incomparison, if the object identifier is popular among users, it mayreceive a higher weight. Weighting of an object identifier included inthe candidate suggestion set may be determined based at least in part onone or more of a relevance of the object identifier to the sending user,a potential relevance of the object identifier to the receiving user(s),a time since the object identifier became associated with the firstuser, a relevance of the object identifier to the context, a rating ofthe object identifier, a number of sets of the first user in which theobject identifier is associated, a time since the first user selectedthe object identifier, a co-occurrence or similarity of the objectidentifier to other object identifiers associated with the sending userand/or the receiving user(s), etc.

Based on the weighting of the object identifiers, one or more suggestedobject identifiers are presented to the sending user for selection andinclusion in a communication sent by the sending user to one or morereceiving users, as in 412.

FIG. 5 illustrates an example process for determining suggested objectidentifier(s) based on commonality, according to an implementation. Theexample process 500 provides additional details for anotherimplementation for determining suggested object identifiers.

The example process 500 begins by determining a candidate suggestion setof object identifier(s) associated with the sending user based onrelevance to the sending user, as in 502. An object identifier'srelevance to the sending user may be based on, for example, a time sincethe user became associated with the object identifier, a number of setsassociated with the user in which the object identifier is included, afrequency with which the object identifier is shared with other users,etc. In other implementations, a communication context may be determinedand one or more sets associated with the user having a samecommunication context may be identified and object identifiers includedin those sets may be added to the candidate suggestion set.

Once the candidate suggestion set is determined, object identifiersincluded in the candidate suggestion set that are already associatedwith the receiving user are removed, as in 508. As discussed above, theobject management service maintains a list of object identifiersassociated with each user. By comparing the object identifiers includedin the candidate suggestion set with the object identifiers associatedwith the receiving object identifier, common object identifiers aredetermined and removed from the candidate suggestion set. In someimplementations, it may also be determined which object identifiers ofthe candidate suggestion set have previously been viewed and/or sent tothe receiving user, and those object identifiers may also be removedfrom the candidate suggestion set. In still other implementations,rather than removing the object identifiers from the candidatesuggestion set that have already been viewed and/or sent to thereceiving user, a weighting of those object identifiers may bedecreased, as discussed below.

For the remaining object identifiers included in the candidatesuggestion set, a weighting may be applied to those object identifiers,as in 510. The weighting may be used to determine which of the candidateobject identifiers to present to the user for selection and inclusion inthe communication. For example, object identifiers with a higher weightmay be selected and provided to the sending user as suggested objectidentifiers. Weighting of an object identifier may be increased and/ordecreased. For example, as discussed above, if it is determined that thereceiving user has previously viewed and/or received the objectidentifier, a weighting of that object identifier may be decreased. Incomparison, if the object identifier is popular among users, it mayreceive a higher weight. Weighting of object identifiers included in thecandidate suggestion set may be determined based at least in part on oneor more of a relevance of the object identifier to the sending user, apotential relevance of the object identifier to the receiving user(s), atime since the object identifier became associated with the first user,a relevance of the object identifier to the context, a rating of theobject identifier, a number of sets of the first user in which theobject identifier is associated, a time since the first user selectedthe object identifier, etc.

Based on the weighting of the object identifiers, one or more suggestedobject identifiers are presented to the sending user for selection andinclusion in a communication sent by the sending user to one or morereceiving users, as in 512.

FIG. 6 illustrates an example process 600 for determining acommunication initiation object identifier, according to animplementation. The example process 600 may be performed prior to acommunication between two or more users and provides additional detailsfor another implementation for determining suggested object identifiers.

The example process 600 begins by determining an object identifierassociated with a receiving user, as in 602. In one implementation, anobject identifier associated with the user may be randomly selected. Inanother implementation, the object identifier most recently associatedwith the receiving user may be selected. In still another example, allobject identifiers associated with the receiving user may be selected.In yet another example, object identifiers that were recently accessedby the receiving user and/or those included in a set recently created oraccessed by the receiving user may be selected.

Based on the determined object identifier(s) associated with thereceiving user, a context is determined, as in 604. The context may bethe context for the object identifier, in implementations when a singleobject identifier has been selected. In another example, the context maycorrespond to a context having a highest percentage of objectidentifiers associated with the receiving user associated therewith.

A candidate suggestion set is then determined and includes objectidentifiers associated with the sending user having a same or similarcontext to the context determined for the receiving user, as in 606.Likewise, any object identifiers included in the candidate suggestionset that are already associated with the receiving user and/or that havebeen previously viewed or sent to the receiving user may be removed fromthe candidate suggestion set, as in 610.

For the remaining object identifiers included in the candidatesuggestion set, a weighting may be applied to those object identifiers,as in 612. The weighting may be used to determine which of the candidateobject identifiers to present to the user for selection and inclusion inthe communication. For example, object identifiers with a higher weightmay be selected and provided to the sending user as suggested objectidentifiers. Weighting of an object identifier may be increased and/ordecreased. For example, as discussed above, if it is determined that thereceiving user has previously viewed and/or received the objectidentifier, a weighting of that object identifier may be decreased. Incomparison, if the object identifier is popular among users, it mayreceive a higher weight. Weighting of object identifiers included in thecandidate suggestion set may be determined based at least in part on oneor more of a relevance of the object identifier to the sending user, apotential relevance of the object identifier to the receiving user(s), atime since the object identifier became associated with the first user,a relevance of the object identifier to the context, a rating of theobject identifier, a number of sets of the first user in which theobject identifier is associated, a time since the first user selectedthe object identifier, a co-occurrence or similarity to other objectidentifiers associated with the sending user and/or the receivinguser(s), etc.

Based on the weighting of the object identifiers, one or more suggestedobject identifiers are presented to the sending user for selection andinclusion in a communication sent by the sending user to one or morereceiving users, as in 612.

FIG. 7 illustrates an example process 700 for determining candidaterecipients for an object identifier, according to an implementation. Theexample process 700 begins upon detection of a selection of an objectidentifier by a first user, as in 702. Selection of an object identifiermay include, for example, the first user selecting, clicking on, gazingin the direction of, or otherwise viewing or interacting with an objectidentifier, such as an image of an object. Upon detecting selection ofan object identifier, a determination is made as to whether the objectidentifier satisfies a sharing criterion, as in 704. A sharing criterionmay indicate a quality or relevance of the object identifier and may bebased on a variety of factors. For example, a sharing criterion may bebased on the number of times the object identifier has been viewed byother users, a rating of the object identifier, comments or annotationsassociated with the object identifier, the number of sets associatedwith the object identifier, the number of times the object identifierhas been shared, the number of times the object identifier has beenselected, an age of the object identifier, a similarity of the objectidentifier with a second object identifier (e.g., a second objectidentifier associated with the first user, and/or a second objectidentifier associated with other users), etc.

If it is determined that the object identifier satisfies a sharingcriterion, one or more potential recipients that may be suggested to thefirst user as candidate recipients for receiving the object identifierare determined, as in 706. Potential recipients may be determined basedon, for example, one or more of an association or relationship with thefirst user and/or based on the object identifier. For example, usersthat are associated with, followed by, following, and/or otherwise knownto the first user may all be determined as potential recipients. Asanother example, users that have selected, saved, shared, etc., otherobject identifiers that are similar to the selected object identifiermay be determined as potential recipients. In still another example,potential recipients may be determined as a combination of users thatare associated with the first user and that have selected, saved,shared, etc., other object identifiers that are similar to the selectedobject identifier. In still other examples, potential recipients may bedetermined based at least in part on the number of times the objectidentifier has been viewed or selected by the potential recipient, anumber of times the first user has shared an object identifier with thepotential recipient, etc.

For each potential recipient, an engagement probability indicating aprobability that the potential recipient will engage with the objectidentifier is determined, as in 708. Engagement with an objectidentifier may include, but is not limited to, the potential recipientselecting the object identifier, saving the object identifier, sharingthe object identifier, communicating with the first user in response toreceiving a share of the object identifier, purchasing an objectrepresented in the object identifier, etc. The engagement probabilitymay be determined based on, for example, the current and/or historicalactivity of the potential recipient, the similarity or interactionbetween the first user and the potential recipient, the number and/ortypes of object identifiers associated with the potential recipient thatare similar to the selected object identifier, etc. For example, if theselected object identifier is a representation of a dog, potentialrecipient A may be determined to have a higher engagement probabilitythan potential recipient B if potential recipient A is known to interactregularly with the first user and is associated with ten other objectidentifiers that include representations of dogs, compared to potentialrecipient B who is also known to interact regularly with the first userbut has no associated object identifiers that include representations ofdogs.

In some implementations, one or more factors in computing the engagementprobably may be weighted higher than other factors. For example, if agoal is to increase activity by a potential recipient, a time since thepotential recipient was active or the frequency of activity by thepotential recipient may be weighted higher than other factors such thatpotential recipients that are not already highly active receive a higherengagement probability, all other factors being equal. As anotherexample, potential recipients that are already associated with theselected object identifier and/or potential recipients that have alreadyviewed or received the object identifier may be given a lower weight forthe engagement probability, or otherwise have their engagementprobability decreased.

In some implementations, some aspects of a potential recipient may notbe considered when determining an engagement probability for thepotential recipient. For example, if a potential recipient is associatedwith an object identifier but has indicated that object identifier asprivate, that object identifier, information about that objectidentifier, and the association of that object identifier with thepotential recipient will not be considered when determining theengagement probability for the potential recipient.

Returning to FIG. 7, upon determining the engagement probability foreach of the potential recipients, it may be determined whether one ormore of the engagement probabilities exceed an engagement threshold, asin 710. The engagement threshold may be any threshold value or score andmay vary for different users, different selected objects, differenttimes of day, different days of the year, etc. Likewise, in someimplementations, the engagement threshold may be zero such that anyengagement probability will be determined to exceed the engagementthreshold. In such an example, the engagement threshold may beconsidered to not exist and the decision block 710 is omitted.

If it is determined that none of the engagement probabilities exceed theengagement threshold, or that the selected object identifier does notexceed the sharing criteria, the example process 700 completes, and nousers are suggested to the first user as candidate recipients of theselected object identifier, as in 714. However, if one or more of theengagement probabilities exceed the engagement threshold, potentialrecipients with the highest engagement probabilities may be suggested tothe first user as candidate recipient with which the first user couldshare the selected object identifier, as in 712. In someimplementations, only those potential recipients having an engagementprobability above the engagement threshold may be presented to the firstuser as candidate recipients. Likewise, in some implementation, thepotential recipients may be ranked based on the engagement probabilitiesand only those potential recipients with the highest ranks may bepresented to the first user as candidate recipients.

FIG. 8 is an example illustration 800 of a suggestion of candidaterecipients for an object identifier, according to an implementation. Inthis example, a first user is browsing a social network using a portabledevice 801, such as a cell phone, tablet, laptop, etc., and has selectedan object identifier 802, in this example an image of a dog. Asdiscussed above, selection of an object identifier may be done by theuser clicking or touching the presented object identifier to receive adetailed or close-up view of the object identifier 802, as illustratedin FIG. 8. In other examples, selection may be made by a user gazing ata particular object identifier, moving a cursor to the objectidentifier, or otherwise interacting with the object identifier.

The object management service, in this example, determines that theobject identifier 802 satisfies one or more sharing criteria anddetermines three candidate recipients 806 that are suggested to thefirst user. Specifically, in this example, a first representation 806-1representative of a first candidate recipient is presented on thedisplay of the device 801 along with a first share control 807-1, asecond representation 806-2 representative of a second candidaterecipient is presented on the display of the device 801 along with asecond share control 807-2, and a third representation 806-3representative of a third candidate recipient is presented on thedisplay of the device 801 along with a third share control 807-3. Thefirst user may select to share the object identifier 802 with one ormore of the candidate recipients 806 by selecting either therepresentation of the candidate recipient 806 or the corresponding sharecontrol 807. Alternatively, the first user may select not to share theobject identifier 802 within anyone by selecting the “No Thanks” control808 or view information about additional candidate recipients that weredetermined by the object management service by selecting the “See More”control 810.

By suggesting candidate recipients for a selected object, the first useris provided with immediate information about users that may beinterested in viewing or receiving the object identifier. If the firstuser decides to share the selected object identifier with one or more ofthe candidate recipients, the first user may also select how the objectidentifier is shared. For example, the first user may select to emailthe selected object identifier, send a message, such as a multimediamessage, to the candidate recipient(s), send a notification to thecandidate recipient(s), send a link to the object identifier, etc.

In some implementations, the object management service may select objectidentifiers to share with two or more users that are browsing orinteracting with the object management service, or a social networkmaintained by the object management service. For example, the objectmanagement service may determine two or more users that are concurrentlybrowsing a social network site, determine a connection between the usersand/or their browsing, and select one or more object identifiers toshare with those users. For example, the object management service maydetermine that two users are independently browsing object identifiersrelated to weddings, determine that the two users are associated andoften share information about weddings. Based at least in part on thatinformation, the object management service may determine a connectionbetween the users related to weddings. In addition, the objectmanagement service may determine one or more object identifiers thathave not been viewed by either user but that are related to weddings andsuggest those object identifiers to each user as of potential interest.Such suggestions may result in the users establishing a communicationduring their current browsing session, expanding their discovery ofobject identifiers related to the current topic (e.g., weddings), andcommunicating other information among each other.

FIG. 9 illustrates an example process 900 for determining multiple usersfor an object identifier, according to an implementation. The exampleprocess 900 begins by determining a connection between two or more usersthat are browsing object identifiers, as in 902. A “connection,” as usedherein, may be any determined similarity in browsing history between twoor more users that are associated. For example, if two users areassociated and are often browsing object identifiers related to Maui,Hi., the two users may be determined to have a connection because theyare associated with each other and they are both currently interested inMaui, Hi. As will be appreciated, any variety of similarities orrelationships may be determined to establish a connection between two ormore users. In some implementations, other factors, such as the locationof the users, affirmative indications by the users of willingness toshare information or object identifiers, the types of object identifiersbeing browsed by the two or more users, an input received from the twoor more users, an input received from another user, etc., may also beconsidered in determining a connection between two or more users.

Based on the determined connection and the object identifiers currentlybeing browsed by the two or more users, a candidate suggestion set ofobject identifier(s) relevant to the connection is determined, as in910. The candidate suggestion set may include any object identifiershaving a same or similar context to the determined connection, theusers, and/or the object identifiers being browsed by the users.

Once the candidate suggestion set is determined, object identifiersincluded in the candidate suggestion set that are already associatedwith the receiving users and/or already viewed by the receiving usersare removed, as in 912. As discussed above, the object managementservice maintains a list of object identifiers associated with eachuser. By comparing the object identifiers included in the candidatesuggestion set with the object identifiers associated with the receivingusers and/or already viewed by the receiving users, common objectidentifiers are determined and removed from the candidate suggestionset. In other implementations, rather than removing the objectidentifiers from the candidate suggestion set that have already beenviewed and/or sent to the receiving users, a weighting of those objectidentifiers may be decreased.

For the remaining object identifiers included in the candidatesuggestion set, a weighting may be applied to those object identifiers,as in 914. The weighting may be used to determine which of the candidateobject identifiers to present to the users. For example, objectidentifiers with a higher weight may be selected and provided to theusers as suggested object identifiers that are relevant to the currentbrowsing of those users. Weighting of an object identifier may beincreased and/or decreased. For example, as discussed above, if it isdetermined that one or more of the receiving users have previouslyviewed and/or received the object identifier, a weighting of that objectidentifier may be decreased. In comparison, if the object identifier ispopular among users, it may receive a higher weight. Weighting of anobject identifier included in the candidate suggestion set may bedetermined based at least in part on one or more of a relevance of theobject identifier to the users, a time since the object identifier wasviewed by either of the users, a relevance of the object identifier tothe connection, a rating of the object identifier, a number of sets withwhich the object identifier is associated, a time since either userselected the object identifier, a co-occurrence or similarity of theobject identifier to other object identifiers associated with eitheruser and/or the receiving user(s), etc.

Based on the weighting of the object identifiers, one or more suggestedobject identifiers are presented to the users as object identifiers ofpotential common interest to the two users with respect to theconnection, as in 916.

FIG. 10 is a block diagram of an example structure of a set 1000 and anobject identifier 1020, according to an implementation. As discussedabove, a set 1000 may include an identification of the user 1002 thatcreated the set and any users that have been identified as allowed toadd object identifiers to the set. In addition, a context 1004, asprovided by a user or determined by the object management service 1322(FIG. 13), may be associated with the set 1000 along with a userselected category 1006. A category 1006 may be selected from a list ofpreexisting categories provided by the object management service 1322.For example, a category 1006 may be animals, books, arts andentertainment, sports, food and drink, etc., and a user, upon creating aset 1000, may select one or more of those categories for associationwith the set 1000. A user may also provide a description 1008 providinginformation about the set 1000 from the user's perspective. Staticinformation 1010 may also be associated with the set 1000. For example,the object management service 1322 may automatically incorporate certaininformation relevant to a set 1000 based on the selected category and,optionally, the provided description 1008. Static information 1010 mayalso include information provided by the creator of the set and/or otherusers of the object management service 1322. For example, other usersmay view, comment and/or otherwise provide feedback with respect to aset. Comments and/or other feedback from the creator and/or other usersmay be associated with the set 1000 and maintained as static information1010.

Supplemental information 1011 relevant to the set 1000 may also bemaintained. Supplemental information for a set may be any form ofinformation or action provided by a source of one or morerepresentations associated with the set, a source of one or more objectsassociated with a set, or any other external source. For example, if theset is about Hawaii, a weather service (external source) may providesupplemental information in the form of weather in Hawaii that isassociated with the set. As object identifiers are added to the set1000, they may be identified as objects 1012 associated with the set1000.

Finally, constraints 1014 may also be associated with the set 1000 andused to control access, modification or other aspects of the set 1000.For example, the creator of a set 1000 may specify constraints as to whocan view the set, add object identifiers to the set, whether users cancomment on the set, etc.

In some implementations, an object identifier 1020 may include anidentification of the user 1022 that created the object identifier 1020,a user provided description 1026 describing the object identifier fromthe user's perspective, and static information 1028. Similar to the set1000, the static information 1028 may be included in the objectidentifier 1020 by the object management service 1322 based on theselected representation 1023 of the object and/or the descriptionprovided by the user. For example, if a user has selected arepresentation 1023 of the object that is already known to the objectmanagement service, existing information about the representation may beincluded in the object identifier 1020. Other static information aboutan object identifier 1020 may include comments provided by other usersof the object management service 1322, the creator of the objectidentifier, etc.

A representation 1023 may also be included in the object identifier. Therepresentation may be any element that can be used to represent theobject. For example, the representation may be a graphicalrepresentation of the object, an audio representation of an object, orany other representation of an object.

The context 1024 of the object identifier describes the object from theperspective of the user. The context may include one or more descriptiveterms for the object represented in the object identifier. In oneimplementation, the object management service may maintain a list ofcontexts and, as object identifiers are created and/or associated with auser, the object management service may determine a context for theobject identifier based on the user's perspective. For example, anobject identifier that includes an image of a dolphin may have differentcontexts depending on the user. The context may be determined based onthe description 1026 provided by the user, the set with which the objectidentifier is associated, etc. As an illustration, if the userassociates the object identifier that includes a representation of adolphin with a set that includes other object identifiers representativeof sea life (e.g., sharks, whales, and fish), the context may beaquatic, or sea life. In comparison, if the user associates the objectidentifier that includes a representation of a dolphin with a set thatincludes other object identifiers representative of the Miami Dolphinsfootball team, it may be determined that the context of the objectidentifier, from the perspective of the user, is football.

In addition to the object management service 1322 providing staticinformation 1028, in some implementations, supplemental information 1030may also be associated with the object identifier 1020. Supplementalinformation may be any form of information or action provided by asource of the representation, a source of the object, or any otherexternal source. For example, the source of the object may provideinformation about the object while other external sources may provideactions relevant to the object. For example, if the object is atelevision, the source of the television may be the manufacturer, suchas Sony, and that source may provide basic information about the object.In this example, the information about the object provided by themanufacturer may include the dimensions, resolution, weight, etc. Otherexternal sources, such as sellers of the television, may provideadditional supplemental information that may be associated with theobject identifier 1020. For example, sellers of the object may provideactions that allow a user viewing the object identifier 1020 to initiatea purchase of the object, obtain additional information about theobject, obtain information about the external source selling the object,etc.

Returning to FIG. 10, the object identifier 1020 may also identify asource 1034 from which the representation of the object was obtained, orthe source of the object. In addition to providing a source 1034, if theobject identifier was based upon and created from another existingobject identifier, that existing object identifier may be identified inthe object identifier 1020 as the parent 1036 of the object identifier1020. Finally, constraints 1038 may also be associated with the objectidentifier 1020 and used to control access, modification or otheraspects of the object identifier 1020. For example, the creator of anobject identifier 1020 may specify constraints as to whether the objectidentifier can be viewed by other users, copied into other sets 1032,whether users can comment on the object identifier, etc.

FIG. 11 illustrates an example client device 1100 that can be used inaccordance with various implementations described herein. In thisexample, the client device 1100 includes a display 1102 and optionallyat least one input component 1104, such as a camera, on a same side ofthe device as the display 1102. The client device 1100 may also includean audio transducer, such as a speaker 1106, and optionally a microphone1108. Generally, the client device 1100 may have any form orinput/output components that allow a user to interact with the clientdevice 1100. For example, the various input components for enabling userinteraction with the device may include a touch-based display 1102(e.g., resistive, capacitive), camera (for gesture tracking, etc.),microphone, global positioning system (GPS), compass or any combinationthereof. One or more of these input components may be included on adevice or otherwise in communication with the device. Various otherinput components and combinations of input components can be used aswell within the scope of the various implementations as should beapparent in light of the teachings and suggestions contained herein.

In order to provide the various functionality described herein, FIG. 12illustrates an example set of basic components 1200 of a client device1100, such as the client device 1100 described with respect to FIG. 11and discussed herein. In this example, the device includes at least onecentral processor 1202 for executing instructions that can be stored inat least one memory device or element 1204. As would be apparent to oneof ordinary skill in the art, the device can include many types ofmemory, data storage or computer-readable storage media, such as a firstdata storage for program instruction for execution by the processor1202. Removable storage memory can be available for sharing informationwith other devices, etc. The device typically will include some type ofdisplay 1206, such as a touch-based display, electronic ink (e-ink),organic light emitting diode (OLED) or liquid crystal display (LCD).

As discussed, the device in many implementations will include at leastone image capture element 1208, such as one or more cameras, that areable to image objects in the vicinity of the device. An image captureelement can include, or be based at least in part upon, any appropriatetechnology, such as a CCD or CMOS image capture element having adetermined resolution, focal range, viewable area, and capture rate. Thedevice can include at least one add object component 1210 for performingthe process of creating an object identifier that identifies an object,and/or interacting with the object management service 1322 as part ofthe process of creating an object identifier that identifies an object.For example, the client device may be in constant or intermittentcommunication with the object management service and may exchangeinformation, such as representations, descriptions, source information,etc., with the object management service as part of the process forcreating an object identifier for an object.

The device may also include an object management component 1212 thatstores and manages information about existing object identifiers and/orsets created by or otherwise associated with the user of the clientdevice. Storing and maintaining such information on the device providesthe ability for a user to interact with and use many of the variousimplementations discussed herein even in the event the client devicecannot communicate with the object management service. For example, ifthe client device is not able to communicate with the object managementservice, the object management component 1212 may, in response to arequest for an object identifier to share, process the communicationusing any of the techniques discussed above and determine a candidatesuggestion set that includes object identifiers maintained at the clientdevice by the object management component 1212. One or more of thoseobject identifiers may then be presented to the user for selection andpresentation to a receiving user as part of a communication.

The device also can include at least one location component 1214, suchas GPS, NFC location tracking or Wi-Fi location monitoring. Locationinformation obtained by the location component 1214 may be used with thevarious implementations discussed herein to identify the location of theuser, source location, object location, and the like and support thecreation, modification and/or management of sets and/or objectidentifiers.

The example client device may also include at least one additional inputdevice able to receive conventional input from a user. This conventionalinput can include, for example, a push button, touch pad, touch-baseddisplay, wheel, joystick, keyboard, mouse, trackball, keypad or anyother such device or element whereby a user can input a command to thedevice. These I/O devices could be connected by a wireless, infrared,Bluetooth, or other link as well in some implementations. In someimplementations, however, such a device might not include any buttons atall and might be controlled only through touch (e.g., touch-baseddisplay), audio (e.g., spoken) commands, or a combination thereof.

FIG. 13 is a pictorial diagram of an illustrative implementation of aserver system, such as the server system 1301, that may be used with theimplementations discussed herein. The server system 1301 may include aprocessor 1300, such as one or more redundant processors, a videodisplay adapter 1302, a disk drive 1304, an input/output interface 1306,a network interface 1308, and a memory 1312. The processor 1300, thevideo display adapter 1302, the disk drive 1304, the input/outputinterface 1306, the network interface 1308, and the memory 1312 may becommunicatively coupled to each other by a communication bus 1310.

The video display adapter 1302 provides display signals to a localdisplay (not shown in FIG. 13) permitting an operator of the serversystem 1301 to monitor and configure operation of the server system1301. The input/output interface 1306 likewise communicates withexternal input/output devices not shown in FIG. 13, such as a mouse,keyboard, scanner, or other input and output devices that can beoperated by an operator of the server system 1301. The network interface1308 includes hardware, software, or any combination thereof, tocommunicate with other computing devices. For example, the networkinterface 1308 may be configured to provide communications between theserver system 1301 and other computing devices, such as the clientdevice 100 (FIG. 1).

The memory 1312 generally comprises random access memory (RAM),read-only memory (ROM), flash memory, and/or other volatile or permanentmemory. The memory 1312 is shown storing an operating system 1314 forcontrolling the operation of the server system 1301. A binaryinput/output system (BIOS) 1316 for controlling the low-level operationof the server system 1301 is also stored in the memory 1312.

The memory 1312 additionally stores program code and data for providingnetwork services that allow client devices to exchange information anddata files with the server system 1301 and/or the object managementservice 1322. Accordingly, the memory 1312 may store a browserapplication 1318. The browser application 1318 comprises computerexecutable instructions, that, when executed by the processor 1300,generate or otherwise obtain configurable markup documents such as Webpages. The browser application 1318 communicates with a data storemanager application 1320 to facilitate data exchange and mapping betweenthe data store 1303, and/or one or more client devices, such as theclient device 100 shown in FIG. 1.

As used herein, the term “data store” refers to any device orcombination of devices capable of storing, accessing and retrievingdata, which may include any combination and number of data servers,databases, data storage devices and data storage media, in any standard,distributed or clustered environment. The server system 1301 can includeany appropriate hardware and software for integrating with the datastore 1303 as needed to execute aspects of one or more of theimplementations discussed herein. The server system 1301 provides accesscontrol services in cooperation with the data stores 1303 and is able togenerate content, such as text, graphics, audio, video and/or objectidentifier or set related information (e.g., representations, context,descriptions, mappings, and analytics about user interfaces) for use indetermining object identifiers to suggest for sharing as part of acommunication.

The data store 1303 can include several separate data tables, databasesor other data storage mechanisms and media for storing data relating toa particular aspect. For example, the data store 1303 illustratedincludes mechanisms for storing content, user information, objectidentifiers, sets, associations between users and object identifiersand/or sets, etc., which can be used to generate and deliver suggestedobject identifiers to client devices 100.

It should be understood that there can be many other aspects that may bestored in the data store 1303. The data store 1303 is operable, throughlogic associated therewith, to receive instructions from the serversystem 1301 and obtain, update or otherwise process data in responsethereto.

The memory 1312 may also include the object management service 1322,discussed above. The object management service 1322 may be executable bythe processor 1300 to implement one or more of the functions of theserver system 1301. In one implementation, the object management service1322 may represent instructions embodied in one or more softwareprograms stored in the memory 1312. In another implementation, theobject management service 1322 can represent hardware, softwareinstructions, or a combination thereof.

The server system 1301, in one implementation, is a distributedenvironment utilizing several computer systems and components that areinterconnected via communication links, using one or more computernetworks or direct connections. However, it will be appreciated by thoseof ordinary skill in the art that such a system could operate equallywell in a system having fewer or a greater number of components than areillustrated in FIG. 13. Thus, the depiction in FIG. 13 should be takenas being illustrative in nature and not limiting to the scope of thedisclosure.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described. Rather,the specific features and acts are disclosed as exemplary forms ofimplementing the claims.

What is claimed is:
 1. A computer-implemented method, comprising: undercontrol of one or more computing systems configured with executableinstructions, receiving from a first user a selection of an objectidentifier from a plurality of object identifiers; determining aplurality of potential recipients with which the object identifier maybe shared by the first user, wherein each of the plurality of potentialrecipients are associated with the first user; determining, for each ofthe plurality of potential recipients, a respective engagementprobability indicating a probability that the potential recipient willengage with the object identifier; and presenting, to the first user, atleast one of the potential recipients as a candidate recipient withwhich the first user can share the object identifier.
 2. Thecomputer-implemented method of claim 1, further comprising: determiningthat the object identifier satisfies one or more sharing criterion; andwherein determining the plurality of potential recipients is in responseto determining that the object identifier satisfies the one or moresharing criterion.
 3. The computer-implemented method of claim 2,wherein the one or more sharing criterion is based on one or more of aquality of the object identifier, or a relevance of the objectidentifier to the first user, a number of times the object identifierhas been viewed by other users, a rating of the object identifier, acomment or annotation associated with the object identifier, a number ofsets associated with the object identifier, a number of times the objectidentifier has been shared, a number of times the object identifier hasbeen selected, an age of the object identifier, or a similarity of theobject identifier with a second object identifier.
 4. Thecomputer-implemented method of claim 1, further comprising: determiningthat an engagement probability for at least one of the plurality ofpotential recipients exceeds a threshold; and wherein presenting, to thefirst user, at least one of the potential recipients as a candidaterecipient with which the first user can share the object identifier, isin response to determining that the engagement probability exceeds thethreshold.
 5. The computer-implemented method of claim 1, furthercomprising: receiving a selection of the candidate recipient; andsending to the candidate recipient, at least one of the objectidentifier or a link to the object identifier.
 6. A non-transitorycomputer-readable storage medium storing program instructions that, whenexecuted by a processor, cause the processor to at least: detect aselection of an object identifier by a first user; determine a pluralityof potential recipients, each of the plurality of potential recipientsassociated with the first user; and present, to the first user, at leastone of the plurality of potential recipients as a candidate recipientwith which the first user may share the object identifier.
 7. Thenon-transitory computer-readable storage medium of claim 6, whereindetermination of the potential recipients is based on one or more of:the association with the first user, a second user following the firstuser, the first user following the second user, a selection of theobject identifier, a share of the object identifier, a save of theobject identifier, a similarity of the object identifier with a secondobject identifier, a number of times the object identifier has beenviewed or selected by the second user, or a number of times the firstuser has shared an object identifier with the second user.
 8. Thenon-transitory computer-readable storage medium of claim 6, wherein theprogram instructions, that, when executed by the processor, furthercause the processor to at least: determine, for each of the plurality ofpotential recipients, an engagement probability indicating a probabilitythat the potential recipient will engage with the object identifier. 9.The non-transitory computer-readable storage medium of claim 8, whereinthe engagement probability is determined based at least in part on oneor more of: a current activity of the potential recipient, a historicalactivity of the potential recipient, a similarity between the first userand the potential recipient, an interaction between the first user andthe potential recipient, a second object identifier associated with thepotential recipient, a type of a second object identifier associatedwith the potential recipient, or a similarity between a second objectidentifier associated with the potential recipient and the objectidentifier.
 10. The non-transitory computer-readable storage medium ofclaim 8, wherein the program instructions, when executed by theprocessor, further cause the processor to at least: determine that anengagement probability for at least one of the plurality of potentialrecipients exceeds a threshold; and wherein the presentation, to thefirst user, at least one of the potential recipients as a candidaterecipient with which the first user can share the object identifier, isin response to a determination that the engagement probability exceedsthe threshold.
 11. The non-transitory computer-readable storage mediumof claim 8, wherein the engagement includes at least one of thepotential recipient selecting the object identifier, saving the objectidentifier, sharing the object identifier, communicating with the firstuser in response to receiving a share of the object identifier, orpurchasing an object represented in the object identifier.
 12. Thenon-transitory computer-readable storage medium of claim 6, wherein theprogram instructions, when executed by the processor, further cause theprocessor to at least: determine that the object identifier satisfiesone or more sharing criterion; and wherein the plurality of potentialrecipients are determined in response to a determination that the objectidentifier satisfies the one or more sharing criterion.
 13. Thenon-transitory computer-readable storage medium of claim 12, wherein theone or more sharing criterion is based on one or more of a quality ofthe object identifier, or a relevance of the object identifier to thefirst user, a number of times the object identifier has been viewed byother users, a rating of the object identifier, a comment or annotationassociated with the object identifier, a number of sets associated withthe object identifier, a number of times the object identifier has beenshared, a number of times the object identifier has been selected, anage of the object identifier, or a similarity of the object identifierwith a second object identifier.
 14. The non-transitorycomputer-readable storage medium of claim 6, wherein the programinstructions, when executed by the processor, further cause theprocessor to at least: receive a selection of the candidate recipient;and send to the candidate recipient, at least one of the objectidentifier or a link to the object identifier.
 15. A method, comprising:determining a connection between a first user and a second user;determining a candidate suggestion set of a plurality of objectidentifiers relevant to the connection; weighting each of the pluralityof object identifiers based at least in part on the first user and thesecond user; and presenting to each of the first user and the seconduser an object identifier of the plurality of object identifiers havinga highest weighting.
 16. The method of claim 15, further comprising:determining at least one object identifier of the candidate suggestionset that is associated with the first user or the second user; andremoving the at least one object identifier from the candidatesuggestion set.
 17. The method of claim 15, wherein the connection isdetermined based at least in part on one or more of a determinedsimilarity of a first browsing of the first user and a second browsingof the second user, a location of the first user and a location of thesecond user, or an input received from at least one of the first user,the second user, or a third user.
 18. The method of claim 15, whereinthe connection is determined and the presenting is performed when thefirst user and the second user are browsing concurrently.
 19. The methodof claim 15, wherein determining the candidate suggestion set, includes:determining a plurality of object identifiers relevant to at least oneobject identifier browsed by the first user or the second user.
 20. Themethod of claim 15, wherein the weighting is determined based at leastin part on one or more of a previous viewing of object identifiers by atleast one of the first user or the second user, or a popularity of theobject identifiers of the candidate suggestion set.